package com.sunchen.asc.service.item.domain;

import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.sql.Timestamp;

@Entity
@Table
@GenericGenerator(name="snowFlow",strategy = "com.sunchen.asc.service.data.SnowflowID")
@Data
/**
 * 事项基本信息扩展
 */
public class ItemInfo {

    @Id
    @GeneratedValue(generator = "snowFlow")
    private Long id;

    private Long itemId;

    //基本编码
    private String baseCode;
    //业务办理项编号
    private String businessCode;
    //实施主体
    private String deptName;
    //办理时间/地点
    private String workTime;
    private String workPlace;
    //权力来源
    private String powerSource;
    //网上支付
    private String onlinePay;
    //所属机构
    private String orgName;
    //委托部门
    private String orgDecide;
    //联办机构
    private String orgJoint;
    //实施主体性质
    private String orgProperty;
    //进驻大厅类型
    private String typeInHall;
    //办理进程查询途径
    private String processTel;
    //行使层级
    private String authLevel;
    //运行系统
    private String runSystem;
    //物流快递
    private String delivery;
    //办理方式
    private String handleType;
    //预约办理
    private String isReserve;
    //办理形式
    private String handleForm;
    //中介服务
    private String zj;
    //数量限制
    private String limitNumber;
    //通办范围
    private String crossScope;
    //行使内容
    private String exerciseContent;
    //权限划分
    private String authorityDivision;
    //特别程序
    private String procedure;
    //必须现场办理原因说明
    private String reason;
    //受理条件
    private String applyCondition;

    //服务承诺
    //办件类型
    private String agreeType;
    //到现场次数
    private String applyTimes;
    //法定办结时间
    private String lawTime;
    //承诺办结时间
    private String agreeTime;
    //承诺办结时限说明
    private String agreeTimeReason;

    //咨询方式
    //咨询电话
    private String advisoryPhone;
    //咨询地址
    private String advisoryAddress;
    //投诉监督方式
    //投诉监督电话
    private String complainPhone;
    //投诉监督地址
    private String complainAddress;
    //常见问题
    private String problem;
    //服务评价
    private String assess;

    @CreationTimestamp
    private Timestamp createTime;
    private String createUser;
    private Timestamp deleteTime;
    private String deleteUser;
    @UpdateTimestamp
    private Timestamp updateTime;
    private String updateUser;

//    public ItemInfo() {
//    }
//
//    public ItemInfo(ItemInfoVo itemInfoVo) {
//        this.id = itemInfoVo.getId();
//        this.itemId = itemInfoVo.getItemId();
//        this.baseCode = itemInfoVo.getBaseCode();
//        this.businessCode = itemInfoVo.getBusinessCode();
//        this.deptName = itemInfoVo.getDeptName();
//        this.workTime = itemInfoVo.getWorkTime();
//        this.workPlace = itemInfoVo.getWorkPlace();
//        this.powerSource = itemInfoVo.getPowerSource();
//        this.onlinePay = itemInfoVo.getOnlinePay();
//        this.orgName = itemInfoVo.getOrgName();
//        this.orgDecide = itemInfoVo.getOrgDecide();
//        this.orgJoint = itemInfoVo.getOrgJoint();
//        this.orgProperty = itemInfoVo.getOrgProperty();
//        this.typeInHall = itemInfoVo.getTypeInHall();
//        this.processTel = itemInfoVo.getProcessTel();
//        this.authLevel = itemInfoVo.getAuthLevel();
//        this.runSystem = itemInfoVo.getRunSystem();
//        this.delivery = itemInfoVo.getDelivery();
//        this.handleType = itemInfoVo.getHandleType();
//        this.isReserve = itemInfoVo.getIsReserve();
//        this.handleForm = itemInfoVo.getHandleForm();
//        this.zj = itemInfoVo.getZj();
//        this.limitNumber = itemInfoVo.getLimitNumber();
//        this.crossScope = itemInfoVo.getCrossScope();
//        this.exerciseContent = itemInfoVo.getExerciseContent();
//        this.authorityDivision = itemInfoVo.getAuthorityDivision();
//        this.procedure = itemInfoVo.getProcedure();
//        this.reason = itemInfoVo.getReason();
//        this.applyCondition = itemInfoVo.getApplyCondition();
//        this.agreeType = itemInfoVo.getAgreeType();
//        this.applyTimes = itemInfoVo.getApplyTimes();
//        this.lawTime = itemInfoVo.getLawTime();
//        this.agreeTime = itemInfoVo.getAgreeTime();
//        this.agreeTimeReason = itemInfoVo.getAgreeTimeReason();
//        this.advisoryPhone = itemInfoVo.getAdvisoryPhone();
//        this.advisoryAddress = itemInfoVo.getAdvisoryAddress();
//        this.complainPhone = itemInfoVo.getComplainPhone();
//        this.complainAddress = itemInfoVo.getComplainAddress();
//        this.problem = itemInfoVo.getProblem();
//        this.assess = itemInfoVo.getAssess();
//    }
}
